A business engine hosted by a service provider for clients, for example a travel booking engine hosted by Amadeus S.A.S. for airlines, comprises application software for receiving user requests for a service and for checking availability and prices of the service.
The business engine comprises a large set of business rules. For example, in the case of a flight booking engine the rules may include the type of meal served, whether the booking is for standard class or business class and a flight's origin and terminus. Each client of a service provider requires rules specific to the service that they are offering as well as standard rules associated with all clients. For example, in the case of airlines a different fuel surcharge calculation may apply for each client, or each airline may have its own rules for administering frequent flyer miles.
Currently, the customisation of a business engine involves altering the core code of the business engine held and operated by the service provider.
This has a number of problems associated with it. For example, the number of issues of new versions of the code is controlled strictly. This is because each issuance of a new version of code introduces the possibility of errors in coding entering the operating version of the code. Such coding errors may cause the failure of the code when running. This is undesirable as strict levels of quality of service are imposed by client firms on the service provider. Furthermore, a minor alteration made to the code to satisfy a requirement of a single client may result in the business engine code failing for all of the service provider's clients.
Also, the customisation of the core code to meet a client's requirements can be time consuming. This can cause delays in bringing a client's desired customisation into the marketplace. This limits the functionality of the business engine for the each specific client.
The customisation of the business engine can take place at any one of the layers of the business engine. The construction of the website could be delegated to a customisation service, such as a web design service (WDS). In the application layer an action can be added, or an existing action extended, that works on data received, or produced by the business engine. In the business layer an enterprise Java bean (EJB) can be installed corresponding to the required additional functionality. Alternatively, an existing EJB can be extended by customising an existing data format and implementing a customised command. In the access layer a custom connector can be added or access to a new third party supplier can be provided.
All of these solutions have the same inherent problem that they require a full reintegration of the core code to be operable. Additionally, the addition of a new third party supplier in the access layer presents a possible security risk unless the content of the third party's databases can be verified.
The use of third party supplier's databases would require the transfer of all data associated with a request being transferred across a network. This requires a significant amount of data to be transferred across a network.